package com.itcam.iostream;

import java.io.*;

/**
 * Author:Cammy.Wu
 * Date:2024-05-13
 * Description:转换流
 * InputStreamReader:字节输入流-->字符输入流
 * OutputStreamWriter:字节输出流-->字符输出流
 */

public class TransferStreamDemo01 {
    public static void main(String[] args) throws IOException {
        // 1.创建文件对象
        File file = new File("E:\\IOstream\\Output.txt");
        // 2.需要一个输入字节流接触文件
        FileInputStream fis = new FileInputStream(file);
        // 3.加入一个转换流，将字节流转换为字符流：（转换流属于一个处理流）
        // 将字节转换为字符的时候，需要指定编码格式，这个编码需要跟文件本身的编码格式统一
//        InputStreamReader isr = new InputStreamReader(fis, "utf-8");
        // 不指定编码格式，默认获取文件本身的编码格式
        InputStreamReader isr = new InputStreamReader(fis);
        // 4.开始动作，将文件内容显示在控制台
        // 缓冲数组
        char[] chars = new char[20];
        int len = isr.read(chars);
        while (len != -1) {
            // 将缓冲数组转为字符串在控制台上打印出来
            System.out.print(new String(chars, 0, len));
            len = isr.read(chars);

        }
        // 5.关闭流
        isr.close();

    }
}
